All articles by Yann Malet

Thumbnail image for 19X faster response time

19X faster response time

At Lincoln Loop, we don’t just build web platforms from scratch and scale them to accommodate growing demand; we also dedicate ourselves to their long-term maintenance. Some of our partnerships have spanned over a decade. Let me walk you through …
Thumbnail image for django CMS is a great toolbox

django CMS is a great toolbox

Here at Lincoln Loop, for the past 15 years, we have built countless Digital experiences (DXP) that help to move our customers’ digital transformation forward. The ultimate result of what is often a long-term engagement is often a code base …
Thumbnail image for 5 Reasons You Need a Multi-Distribution Channel CMS

5 Reasons You Need a Multi-Distribution Channel CMS

Whether you are a publisher or marketer, content is pivotal to your role. It either is your product or your product’s success depends on it. But generating the engaging content your brand requires is only half of your challenge. In …
Thumbnail image for Cracking Django Password Hashes

Cracking Django Password Hashes

Most of the Django projects I work with take advantage of django.contrib.auth. It manages users and groups and is tightly coupled with django.contrib.admin. In this post, we are going to explore how it resists a potential attacker. The study below …
Thumbnail image for Debugging Go Code

Debugging Go Code

Four years ago, I wrote a blog post called Introduction to Go Debugging with GDB. At the time, the only option was the GNU debugger. Even the official Go documentation page on GDB doesn’t set the bar very high: GDB …
Thumbnail image for Sharing Media Files Without S3

Sharing Media Files Without S3

Nowadays, it’s common to deploy multiple application servers, but it poses a very common problem; How are these application servers going to share the media files contributed by the users? Cloud providers like Google, Rackspace or Amazon Web Services solve …
Thumbnail image for How We Manage Our Company-wide Secrets

How We Manage Our Company-wide Secrets

This post could have been titled, “How We Use OpenPGP to Protect Our Secrets.” All the use cases illustrated below use a tool called GnuPG to take care of the crypto details for us. GnuPG is a complete and free …
Thumbnail image for Let's Encrypt DNS Challenge

Let's Encrypt DNS Challenge

Let’s Encrypt is a new certificate authority. It is a huge improvement over the manual complex process of acquiring and deploying an HTTPS server. The process is now: Free Automatic (no more login to sites, filling forms, concatenating certificates) This …
Thumbnail image for Concurrency in Python vs GO

Concurrency in Python vs GO

At Pycon in Montreal few weeks ago I attended a talk that blew my mind away and got me thinking: Python concurrency from the Ground Up: LIVE! by David Beazley. The video is available on YouTube. The gist of the …
Thumbnail image for Server Migration for BotBot.me

Server Migration for BotBot.me

Last week Vitaly and I migrated BotBot.me to new servers and also launched a redesign of the user account section. You can now support us by becoming a subscriber for $3/month and even log personal channels for $2/month. If you …
Thumbnail image for Varnish Saint Mode

Varnish Saint Mode

Varnish Saint Mode is a lesser known gem inside varnish that lets you serve stale content from cache, even when your backend servers are unavailable. This article explains how to configure varnish to take advantage of this feature. If you …
Thumbnail image for A Djangonaut Building a Webapp in Go with Gorilla

A Djangonaut Building a Webapp in Go with Gorilla

At Lincoln Loop, we have been building large web applications using Django since 2007. Recently, however, we have recently started using Go as a critical network component of Botbot.me. Reading others’ successes stories about replacing some existing components of their …
Thumbnail image for Test Coverage in Go

Test Coverage in Go

An important part of the process process of learning a new language is to learn the ecosystem that helps you to write better code. In a previous article I covered gdb integration with Go. Next on my list is to …
Thumbnail image for Introduction to Go Debugging with GDB

Introduction to Go Debugging with GDB

I spent the vast majority of my time in the last 4 years writing, reading and debugging Python or JavaScript code. The process of learning Go was like a beautiful hike in the mountains with a small rock in my …
Thumbnail image for Django Caching in the Real World: Part 1

Django Caching in the Real World: Part 1

When you develop a sizable content heavy web site you quickly learn, hopefully not the hard way, that caching is a very important piece of your infrastructure. The database servers are the typical bottleneck in high volume website. Common wisdom …
Thumbnail image for Custom Filters in the Django Admin

Custom Filters in the Django Admin

A few weeks ago Django’s team revealed a data leakage bug in the admin application that affects an extremely interesting and undocumented feature. A user that has access to a change_list page of an object in the admin interface can …
Thumbnail image for Using Django Inside the Tornado Web Server

Using Django Inside the Tornado Web Server

Inspired by Eric Florenzano’s talk, Using Django in Non-Standard Ways (slides in PDF) at DjangoCon and the announcement of Tornado (tornadoweb.org), I decided to try building a small application using the Django Form library and Django ORM inside Tornado. The …